package QianFeng17;

import java.awt.*;
import java.awt.event.*;

/**
 * 事件处理:
 * 事件(Event):用户对组件的一个操作，称之为一个事件
 * 事件源(Event source):产生事件的对象
 * 事件处理方法(Event handler):能够接收、解析和处理事件类对象、实现和用户交互的方法，事件监听器。
 * 为简化编程，针对大多数事件监听器接口定义了相应的实现类---事件适配器类，
 * 在适配器类中，实现了相应监听器接口中所有的方法，但不做任何事情。
 **/
public class MyFrame extends Frame implements ActionListener {

    public static void main(String[] args) {
        new MyFrame();
    }


    /**
     * 初始化窗体的基本属性
     **/
    public MyFrame() {
        //设置窗口大小和位置
        this.setBounds(600,300,600,400);
        //设置窗口标题
        this.setTitle("我的第一个GUI窗体");
        //创建一个按钮
        Button button = new Button("click me");
        //给按钮添加单机事件
        button.addActionListener(this);
        //创建一个线性布局
        FlowLayout flowLayout = new FlowLayout();
        //把布局应用到窗体上
        this.setLayout(flowLayout);
        //给窗体添加关闭事件
        this.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(0);
            }
        });
        //把按钮添加到窗体上
        this.add(button);
        //将窗体设置为可见
        this.setVisible(true);
    }

    //单机事件处理的方法
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("惊喜来了，恭喜你获得100元大红包！");
    }
}
